class TareaParticipantesController < ApplicationController
  before_filter :authenticate_user!
  # GET /tarea_participantes
  # GET /tarea_participantes.json

  def index
    @usuario=Usuario.find_by_id(current_user.id)
    @tareas = @usuario.tareas.all


    # a continuacion llenar la info del grafico de estado tareas por proc

    @cant_proceso_poriniciar_plan = 0
    @cant_proceso_enprogreso_plan = 0
    @cant_proceso_terminadas_plan = 0
    @cant_proceso_poriniciar_real = 0
    @cant_proceso_enprogreso_real = 0
    @cant_proceso_terminadas_real = 0

    @col1_real = 0
    @col2_real = 0
    @col3_real = 0
    @col1_plan = 0
    @col2_plan = 0
    @col3_plan = 0



      @tareas.each do |tarea|

        if tarea.fecha_inicio > Date.today && tarea.fecha_fin < Date.today
          @col2_plan = @col2_plan + 1
        elsif Date.today > tarea.fecha_fin
          @col3_plan = @col3_plan + 1
        elsif Date.today < tarea.fecha_inicio
          @col1_plan = @col1_plan + 1
        end

        if tarea.columna == 1
          @col1_real = @col1_real + 1
        elsif tarea.columna == 2
          @col2_real = @col2_real + 1
        elsif tarea.columna == 3
          @col3_real = @col3_real + 1
        end

      end
      @cant_proceso_poriniciar_plan = @col1_plan
      @cant_proceso_enprogreso_plan = @col2_plan
      @cant_proceso_terminadas_plan = @col3_plan
      @cant_proceso_poriniciar_real = @col1_real
      @cant_proceso_enprogreso_real = @col2_real
      @cant_proceso_terminadas_real = @col3_real

    respond_to do |format|
      format.html { render 'index', :layout => 'WS_usuarios'}# show.html.erb
      format.json { render 'index', :layout => 'WS_usuarios'}#render json: @proyecto }
    end

  end
  def updateHoras
    @usuario=Usuario.find_by_id(10)
    @tarea = Tarea.find(params[:tarea])
    if @tarea.update_attribute("horas_ejecutadas", params[:horas])
      @tarea_participante=TareaParticipante.find_by_tarea_id_and_usuario_id(@tarea.id, @usuario.id)
      if @tarea_participante.update_attribute("ejecutadas", params[:horas])
        render :text => "true"
      else
        render :text => "false"
      end
    else
      render :text => "false"
    end
  end

  def updateEstado
    @tarea = Tarea.find(params[:tarea])
    @usuario=Usuario.find_by_id(10)

    # respond_to do |format|
    if @tarea.update_attribute("columna", params[:columna]) #update_attributes(params[:actividad])

      if @tarea.estado==1 || @tarea.estado==2
        if params[:columna]=="2"
          @tarea.update_attribute("estado",5)
        elsif params[:columna]=="3"
            @tarea.update_attribute("estado",8)
        end
      elsif @tarea.estado==3
         if params[:columna]=="2"
             @tarea.update_attribute("estado",6)
         elsif params[:columna]=="3"
            @tarea.update_attribute("estado",9)
         end
      elsif @tarea.estado==4
         if params[:columna]=="2"
            @tarea.update_attribute("estado",7)
         elsif params[:columna]=="3"
            @tarea.update_attribute("estado",10)
         end
      elsif @tarea.estado==5
         if params[:columna]=="1"
           @tarea.update_attribute("estado",1)
         elsif params[:columna]=="3"
           @tarea.update_attribute("estado",8)
         end
      elsif @tarea.estado==6
        if params[:columna]=="1"
         @tarea.update_attribute("estado",3)
        elsif params[:columna]=="3"
          @tarea.update_attribute("estado",9)
        end
      elsif @tarea.estado==7
        if params[:columna]=="1"
          @tarea.update_attribute("estado",4)
        elsif params[:columna]=="3"
          @tarea.update_attribute("estado",10)
        end
      elsif @tarea.estado==8
        if params[:columna]=="1"
          @tarea.update_attribute("estado",1)
        elsif params[:columna]=="2"
          @tarea.update_attribute("estado",5)
        end
      elsif @tarea.estado==9
        if params[:columna]=="1"
          @tarea.update_attribute("estado",3)
        elsif params[:columna]=="2"
         @tarea.update_attribute("estado",6)
        end
      elsif @tarea.estado==10
        if params[:columna]=="1"
          @tarea.update_attribute("estado",4)
        elsif params[:columna]=="2"
          @tarea.update_attribute("estado",7)
        end
      end



      @estado_tarea = EstadoTarea.new
      @estado_tarea.tareas_id=@tarea.id
      @estado_tarea.estado_actividads_id=@tarea.estado
      @estado_tarea.usuario_id=@usuario.id
      if @estado_tarea.save
        render :text => "true";
      else
        render :text => "false"
      end
    else
      render :text => "false"
    end
    # end
  end

  # GET /tarea_participantes/1
  # GET /tarea_participantes/1.json
  def show
    @tarea_participante = TareaParticipante.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @tarea_participante }
    end
  end

  # GET /tarea_participantes/new
  # GET /tarea_participantes/new.json
  def new
    @tarea_participante = TareaParticipante.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @tarea_participante }
    end
  end

  # GET /tarea_participantes/1/edit
  def edit
    @tarea_participante = TareaParticipante.find(params[:id])
  end

  # POST /tarea_participantes
  # POST /tarea_participantes.json
  def create

    @tarea = Tarea.find(params[:tarea_seleccionada])

    @tarea_participantes = TareaParticipante.find_all_by_tarea_id(@tarea.id)
    participante_id = params[:participante_id]
    if participante_id != nil then

      @tarea_participantes.each do |tarea_participante|
        tarea_participante.delete
      end

     # @participantes.each do |participante_id|

      @dedicacion = "dedicacion_" + participante_id.to_s()

      @tarea_participante = TareaParticipante.new(
        :usuario_id => participante_id,
        :dedicacion => params[@dedicacion],
        :tarea_id => params[:tarea_seleccionada]
      )

      if @tarea_participante.save then
        @proyecto_usuarios = ProyectoUsuario.find_all_by_proyecto_id_and_usuario_id(@tarea.proceso.proyecto_id, @tarea_participante.usuario_id)
        if @proyecto_usuarios.count() == 0 then

          @proyecto_usuario = ProyectoUsuario.new(
              :usuario_id => @tarea_participante.usuario_id,
              :proyecto_id => @tarea.proceso.proyecto_id
           )

          @proyecto_usuario.save
        end

        begin
        @permisos = '[["group_id","2"]]'
        _usuario = Usuario.find(@tarea_participante.usuario_id)
        _url = ENV['root_razuna_api'] + "/global/api2/user.cfc?method=update&api_key=" + ENV['admindavid_razuna_key'] + "&useremail=" + _usuario.email + "&userdata=" + @permisos + "&__BDRETURNFORMAT=wddx"
        @wddx = WDDX.load(open(_url))
        rescue

        end

      else
        respond_to do |format|
          format.html { render action: "new" }
          format.json { render json: @tarea_participante.errors, status: :unprocessable_entity }
        end

        #break

      end

   # end

    end

    redirect_to request.protocol + request.host_with_port + "/tareas?proceso_id=+" + @tarea.proceso_id.to_s()

  end

  # PUT /tarea_participantes/1
  # PUT /tarea_participantes/1.json
  def update
    @tarea_participante = TareaParticipante.find(params[:id])

    respond_to do |format|
      if @tarea_participante.update_attributes(params[:tarea_participante])
        format.html { redirect_to @tarea_participante, notice: 'Tarea participante was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @tarea_participante.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /tarea_participantes/1
  # DELETE /tarea_participantes/1.json
  def destroy
    @tarea_participante = TareaParticipante.find(params[:id])
    @tarea_participante.destroy

    respond_to do |format|
      format.html { redirect_to tarea_participantes_url }
      format.json { head :no_content }
    end
  end
end
